package com.mida.bms.report.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.mida.tool.common.utils.LongToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 报告listVo
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DocReportListVo {
    /**
     * 影像号
     */
    private String stPatientId;

    /**
     * 申请单号
     */
    private String requisitionId;
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long requestSoid;

    /**
     * 姓名
     */
    private String personName;

    /**
     * 性别
     */
    private String gender;
    private BigDecimal genderCode;

    /**
     * 年龄
     */
    private BigDecimal age;

    /**
     * 就诊类型名称
     */
    private String clinicTypeName;
    private BigDecimal visitScenceCode;//就诊场景代码(就诊类型标识)

    /**
     * 开单科室名称，申请科室
     */
    private String businessUnitName;
    private BigDecimal clinicalBusinessUnitSoid;
    /**
     * 检查类型
     */
    private String ctType;
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long ctTypeSoid;

    /**
     * 检查部位
     */
    private List<String> checkPart;

    /**
     * 上机时间（检查时间）
     */
    private Date operateDateTime;

    /**
     * 书写医生
     */
    private String writingDoctor;
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long writingDoctorSoid;

    /**
     * 审核医生
     */
    private String checkDoctor;
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long checkDoctorSoid;

    /**
     * 报告状态
     */
    private String reportStatus;
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long reportProcessStatus;//报告流程状态
    /**
     * 报告小状态
     */
    private String statusName;
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long Status;//报告自身状态

    /**
     * 出生日期
     */
    private Date birthDate;

    /**
     * 登记标识
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long registrationFormSoid;

    /**
     * 登记号
     */
    private String registrationNo;


    /**
     * 检查号
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long examinationVisitSoid;

    /**
     * 检查标识
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long operatorSoid;
    /**
     * 服务实例数据
     */
    private List<ServiceInstanceVo> serviceInstanceVoList;

    private String requestStatusName;
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long requestStatus;

    //报告soid
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long stReportSoid;
    //病人soid
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long apntPersonSoid;

    //还有几个元素
    private Integer elements;
}
